package collection;

import java.util.HashSet;

/**
 * HashSet
 */
public class HashSet01 {

    public static void main(String[] args) {

        HashSet set = new HashSet();

        //add
        /*
            在执行add后，会返回一个boolean值
            如果添加成功，返回 true，否则返回 false
            可以通过 remove 指定删除哪个对象
         */

        System.out.println(set.add("john"));//T
        System.out.println(set.add("lucy"));//T
        System.out.println(set.add("john"));//F
        System.out.println(set.add("jack"));//T
        System.out.println(set.add("Rose"));//T

        set.remove("john");
        System.out.println("set=" + set);//set=[Rose, lucy, jack]

        set = new HashSet();
        System.out.println("set=" + set);//set=[]

        set.add("lucy");//添加成功
        set.add("lucy");//加入不了
        set.add(new Dogs("tom"));//OK
        set.add(new Dogs("tom"));//Ok
        System.out.println("set=" + set);//set=[Dogs{name='tom'}, Dogs{name='tom'}, lucy]


        //经典面试题
        set.add(new String("lmy"));//ok
        set.add(new String("lmy"));//加入不了
        System.out.println("set=" + set);

    }
}

class Dogs { //定义了 Dog 类

    private String name;

    public Dogs(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dogs{" +
                "name='" + name + '\'' +
                '}';
    }
}
